package com.minimalist.lindi.service;

import com.minimalist.common.config.mybatis.bo.PageResp;
import com.minimalist.common.entity.lindi.po.LindiContractTemplate;
import com.minimalist.common.entity.lindi.vo.contracttemplate.LindiContractTemplateQueryVO;
import com.minimalist.common.entity.lindi.vo.contracttemplate.LindiContractTemplateVO;
import com.mybatisflex.core.service.IService;

/**
 * 林地指标平台_合同模板表 服务层。
 *
 * @author 11987
 * @since 2025-05-31
 */
public interface LindiContractTemplateService extends IService<LindiContractTemplate> {

    /**
     * 添加合同模板
     *
     * @param contractTemplateVO 合同模板VO
     */
    void addContractTemplate(LindiContractTemplateVO contractTemplateVO);

    /**
     * 根据ID删除合同模板
     *
     * @param contractTemplateId 合同模板ID
     */
    void deleteContractTemplateByContractTemplateId(Long contractTemplateId);

    /**
     * 根据ID更新合同模板
     *
     * @param contractTemplateVO 合同模板VO
     */
    void updateContractTemplateByContractTemplateId(LindiContractTemplateVO contractTemplateVO);

    /**
     * 分页查询合同模板列表
     *
     * @param queryVO 查询条件
     * @return 分页结果
     */
    PageResp<LindiContractTemplateVO> getPageContractTemplateList(LindiContractTemplateQueryVO queryVO);

    /**
     * 根据ID查询合同模板
     *
     * @param contractTemplateId 合同模板ID
     * @return 合同模板VO
     */
    LindiContractTemplateVO getContractTemplateByContractTemplateId(Long contractTemplateId);

    /**
     * 根据文件ID删除合同模板文件
     *
     * @param fileId 文件ID
     */
    void deleteContractTemplateFileByFileId(Long fileId);
}
